6. 输出文件格式说明

6.1. relax.json


relax.json 为 task = relax 时的输出文件,当 task类型为其他时,该文件不输出。

_images/1-1.png

(1) relax.json 中包含 1*N 个结构体;

(2)每个结构体保存着结构弛豫中每个离子步优化之后的结构信息,具体包含3部分信息:

  • Atoms 中保存着每个原子的信息,每个Atoms中包含5部分信息:

  • Element 为原子的元素名;

  • Fix 为原子是否固定;

  • Mag 为原子的初始磁矩;

  • Position 为原子的对应的坐标;

  • Pot 为原子的赝势信息;

  • CoordinateType 为坐标类型: Direct 为分数坐标, Cartesian 为笛卡尔坐标;

  • FixLattice 为晶胞向量是否固定;

  • Lattice 为晶格常数;

6.2. system.json


除 task = frequency 、task = elastic 、task = epsilon外,其余task计算输出system.json文件。

_images/system.json3.png

(1) system.json 中包含6个结构体;

(2) AtomInfo 中包含5部分信息:

  • Atoms 中保存着每个原子的信息;每个Atoms中包含2部分信息:

  • Element 为对应原子的元素名;

  • Position 为对应原子的对应的坐标;

  • CoordinateType 为坐标类型: Direct 为分数坐标, Cartesian 为笛卡尔坐标;

  • FixLattice 为是否固定晶胞的开关,在structure.as文件的第三行添加Fix标签控制;

  • Grid 为格点数目,绘制3维格点数据的时候需要使用

  • Lattice 为晶格常数;

(3) Eigenvalue 中包含3部分信息:

  • NumberOfBand 为总能带数;

  • Spin1Spin2 (若考虑自旋)保存着能量本征值,其数据格式相同; 以 Spin1 为例,该结构包含3部分信息:

  • BandEnergies 中保存着每条能带每个 K点 对应的能量值;

  • Kpoints 中保存着每个 K点 的分数坐标;

  • Occupation 中保存着每条能带每个 K点 对应的电子占据值;

(4) Energy 中包含3部分信息:

  • EFermi 为自洽或最后一步结构弛豫的费米能级的值;

  • TotalEnergy 为自洽或最后一步结构弛豫的总能的值;

  • TotalEnergy0 为自洽或最后一步结构弛豫的 sgmia 趋于 0 时近似总能的值;

(5) Force 中包含1部分信息:

  • ForceOnAtoms 中保存着每个原子对应 XYZ 三个方向上的力的值;

(6) MagInfo 中包含着磁矩的信息;

  • TotalMagOnAtomsX 给出各原子X方向上的总磁矩,Y,Z同理,该信息输出需在input.in文件中打开io.magProject开关;

  • TotalMagOnOrbitalX 给出X方向磁矩分布在各轨道的分量,Y, Z同理,该信息输出需在input.in文件中打开io.magProject开关;

(7) Stress 中包含2部分信息:

  • Direction 中保存了 Total stress 的分量符号;

  • Total 中保存了在每个Direction分量上 stress 的值;

6.3. dos.json


dos.json 为 task = dos 时的输出文件,当 task类型为其他时,该文件不输出。

_images/3-3.png

(1) dos.json 中包含2个结构体;

(2) AtomInfosystem.json 中的AtomInfo数据;

(3) DosInfo 中包含11部分信息:

  • DosEnergy 为所计算态密度的能量点的数据;

  • EFermi 为费米能级值;

  • EnergyMax 为所计算态密度的最大能量值;

  • EnergyMin 为所计算态密度的最小能量值;

  • SpinType 为计算时所设置的磁性类型;

  • Magnetization 为投影到每个原子上的磁矩分量;

  • NumberOfDos 为所计算的态密度的所有能量点的数目;

  • Orbit 为投影轨道信息;

  • IsProject 为态密度计算时是否打开了投影功能;

  • Spin1Spin2 保存着态密度相关的数据,其数据格式相同; Spin1 中包含2部分信息:

  • Dos 为总的态密度的数据;

  • ProjectDos 包含原子数×轨道数目大小的结构体,每个结构体中包含着3部分信息:

    • AtomIndex 为当前 Contribution 对应的元素序号,该序号与AtomInfo中的 Atoms 的序号相同;

    • ContributionAtomIndex 对应原子和 OrbitIndex 对应轨道在每个能量点下的态密度贡献值;

    • OrbitIndex 为当前 Contribution 对应的轨道序号,该序号与DosInfo中的Orbit的序号相同;

注解

注意:当只有Spin1的时候,Spin1为总的信息 当Spin1和Spin2同时存在的时候,Spin1为自旋向上的信息,Spin2为自旋向下的信息。

6.4. band.json


band.json 为 task = band 时的输出文件,当 task类型为其他时,该文件不输出。

_images/band.png

(1) 此例为能带反折叠计算的 band.json 文件,包含3个结构体;

(2) AtomInfosystem.json 中的 AtomInfo 数据;

(3) BandInfo 中包含12部分信息:

  • BandGap 为带隙值;

  • CBM 为导带位置;

  • VBM 为价带位置;

  • CoordinatesOfKPoints 为能带计算时K点的分数坐标;

  • EFermi 为费米能级值;

  • SpinType 为计算时所设置的磁性类型;

  • SymmetryKPoints 为能带计算时高对称K点的字母表示;

  • SymmetryKPointsIndex 为能带计算时高对称K点的起始序号;

  • IsProject 为能带计算时是否打开了投影功能;

  • NumberOfband 为所计算的能带的所有能带的数目;

  • Orbit 为投影轨道信息;

  • Spin1Spin2 保存着能带相关的数据,其数据格式相同, Spin1 中包含2部分信息:

    • Band 为总的能带的数据;

    • ProjectBand 包含原子数×轨道数目大小的结构体,每个结构体中包含着3部分信息:

    • AtomIndex 为当前 Contribution 对应的元素序号,该序号与AtomInfo中的 Atoms 的序号相同;

    • ContributionAtomIndex 对应原子和 OrbitIndex 对应轨道在每个能量点下的能带贡献值;

    • OrbitIndex 为当前 Contribution 对应的轨道序号,该序号与BandInfo中的 Orbit 的序号相同;

(4) UnfoldingBandInfo 中包含8部分信息,除 Spin 部分结构与 BandInfo 不同,其余数据结构均一致:

  • Spin1 保存着反折叠能带的相关的数据, Spin1 中包含2部分信息:

    • UnfoldingBand 为总的能带数据;

    • Weight 为能带的权重值;

注解

注意:当只有Spin1的时候,Spin1为总的信息 当Spin1和Spin2同时存在的时候,Spin1为自旋向上的信息,Spin2为自旋向下的信息。

6.5. rho.json


rho.json 为 task = scf 以及 task =relax时的输出文件,当 task类型为其他时,该文件不输出。

_images/3-5.png

(1) rho.json 中包含2个结构体;

(2) AtomInfosystem.json 中的 AtomInfo 数据;

(3) Rho 中包含信息:

  • TotalChargeSpinChargeTotalChargeSpinCharge 数据格式相同,都表示电荷密度其数据大小为AtomInfo中3个Grid的乘积;

注解

注意:在当只有TotalCharge的时候,TotalCharge为总的电荷密度;当TotalCharge和SpinCharge同时存在的时候,TotalCharge为总的电荷密度,SpinCharge为自旋电荷密度;

6.6. elf.json


elf.json 可为 task = elf 和 task = scf 且 io.elf设置为 true 以及 task = relax 且 io.elf设置为 true这 3种 task下的输出文件,当task类型为其他时,该文件不输出。

_images/3-6.png

(1) elf.json 中包含2个结构体;

(2) AtomInfosystem.json 中的AtomInfo数据;

(3) elf 中包含信息:

  • TotalELFSpinELFTotalELFSpinELF 数据格式相同,都表示电子局域密度的数据,其数据大小为AtomInfo中3个Grid的乘积;

注解

注意:在当只有TotalELF的时候,TotalELF为总的局域电荷密度;当TotalELF和SpinELF同时存在的时候,TotalELF为总的局域电荷密度,SpinELF为自旋局域电荷密度;

6.7. potential.json

potential.json 可为 task = potential 和 task = scf 且 io.potential设置为 true 以及 task = relax 且 io.potential设置为 true这3种 task下的输出文件,当 task类型为其他时,该文件不输出。

_images/3-7.png

(1) potential.json 中包含2个结构体;

(2) AtomInfosystem.json 中的AtomInfo数据;

(3) potential 中包含4部分信息:

  • TotalElectrostaticPotentialSpinElectrostaticPotentialTotalElectrostaticPotentialSpinElectrostaticPotential 数据格式相同,都表示静电势函数的数据,其数据大小为AtomInfo中 3个Grid 的乘积;

  • TotalLocalPotentialSpinLocalPotentialTotalLocalPotentialSpinLocalPotential 数据格式相同,都表示局域势函数的数据,其数据大小为AtomInfo中 3个Grid 的乘积;

注解

注意:potential.type = hartree/total/all,分别保存ElectrostaticPotential/LocalPotential/ElectrostaticPotential & LocalPotential 三种类型的势函数,对应静电势、局域势、静电势和局域势

6.8. pcharge.json


pcharge.json 为 task = pcharge 时的输出文件,当 task类型为其他时,该文件不输出。

_images/pcharge.png

(1) pcharge.json 中包含2个结构体;

(2) AtomInfosystem.json 中的 AtomInfo 数据;

(3) Pcharge 在本例中包含1部分信息,为第4条能带的电荷密度,若计算N条能带,Pcharge会写出N部分信息:

  • BandIndexKpointIndex 分别对应计算能带的序号及计算所用K点;

  • TotalCharge 表示电荷密度的数据,其数据大小为AtomInfo中 3个Grid 的乘积;

注解

注意:当pcharge.sumK = true时,Pcharge只包含一部分信息,为所有计算的能带的电荷密度之和。

6.9. optical.json


optical.json 为 task = scf 且 io.optical = true 时的输出文件,当 task类型为其他时,该文件不输出。

_images/optical.png

(1) optical.json 中包含2个结构体;

(2) AtomInfosystem.json 中的 AtomInfo 数据;

(3) OpticalInfo 中包含9部分信息:

  • AbsorptionCoefficientExtinctionCoefficientOpticalConductivityReflectanceRefractiveIndex 数据格式相同,分别对应吸收系数、消光系数、光电导率、反射率和折射率,其数据大小为 计算能量间隔点数 *6;

  • ImDielectricFunctionReDielectricFunction 数据格式相同,分别对应介电函数的虚部和实部,其数据大小为 计算能量间隔点数 *6;

  • EnergyAxeEnergyLoss 分别对应能量计算范围,能量损失系数。

6.10. frequency.json


frequency.json 为 task = frequency 时的输出文件,当 task类型为其他时,该文件不输出。

_images/frequency.png

(1) frequency.json 中包含2个结构体;

(2) AtomInfosystem.json 中的 AtomInfo 数据;

(3) FrequencyInfo 中包含2部分信息:

  • 两部分数据对应两种类型的频率,分别为 ff/i

  • 每种频率的信息分为两部分, eigenvalueseigenvectors ,对应频率的本征值和本征向量,本征向量给出 xyzdxdydz 6个方向上的分量。

6.11. elastic.json


elastic.json 为 task = elastic 时的输出文件,当 task类型为其他时,该文件不输出。

_images/elastic.png

(1) elastic.json 中包含2个结构体;

(2) AtomInfosystem.json 中的 AtomInfo 数据;

(3) ElasticInfo 中包含5部分信息:

  • CrystalSystem 给出体系的晶体类型;

  • ElasticModulus 数据大小为36,给出弹性模量的数据。

  • HillReussVoigt 分别给出三种模型下计算出的体积模量和剪切模量的数据,此外 Hill 模型还给出杨氏模量和泊松比。

6.12. neb.json


neb.json 为 task = neb 时的输出文件,当 task类型为其他时,该文件不输出。

_images/neb.png

(1) neb.json 中包含7个结构体;

(2) Distance 给出每两个相邻构型(00与01、01与02...05与06)之间坐标的距离;

(3) Energy 体系总能,共有 image数量 +2 个数据

(4) Force 分为两部分,分别为最大受力和切向力,共有 image数量 个数据

(5) Iteration 给出所有插点结构在优化过程中的最大受力和总能数据,共有 image数量 个数据

(6) RelaxedStructure 给出所有构型在优化完成后的原子和晶胞信息

(7) UnrelaxStructure 给出所有构型优化前的原子和晶胞信息

(8) iniFin 表示是否对初态和末态结构进行自洽计算。

注解

注意:当iniFin = False时,Distance部分不提供00与01及05与06之间的坐标距离,Energy部分数据总数等于image数量。

6.13. phonon.json


phonon.json 为 task = phonon 时的输出文件,当 task类型为其他时,该文件不输出。

_images/phonon.json.png

(1) 此例中phonon.method = dfpt, phonon.type = bandDos, phonon.json 中包含8个结构体;

(2) BandInfo 包含7部分信息,结构与 band.json 文件中 BandInfo 部分相似,

  • CoordinatesOfQPoints 为计算声子能带时Q点的分数坐标;

  • NumberOfBand 为计算声子能带时所有能带数目;

  • NumberOfQPoints 为计算声子能带时高对称Q点的字母表示;

  • Spin1 为计算声子能带的相关数据;

  • SpinType 为计算声子能带时设置的自旋类型;

  • SymmetryQPoints 为声子能带计算时高对称Q点的字母表示;

  • SymmetryQPointsIndex 为声子能带计算时高对称Q点的起始序号;

(3) DosInfo 包含6部分信息,结构与 dos.json 文件中 DosInfo 部分相似,

  • DosEnergy 为计算声子态密度时能量点的数据;

  • EnergyMax 为计算声子态密度的最大能量值;

  • EnergyMin 为计算声子态密度的最小能量值;

  • NumberOfDos 为计算声子态密度时所有能量点的数目;

  • Spin1 为计算声子态密度的相关数据;

  • SpinType 为计算声子态密度时设置的自旋类型;

(4) EpsilonInfo 包含3部分信息,给出介电常数相关数据,详细解析请见第(10)条。

(5) ForceConstant 分为2部分, ConstantIndex 给出力学常数数组的维度, ConstantValue 为力学常数的数据,数据大小为Index中各维度之乘积。

(6) PrimitiveAtomInfo 分为3部分,给出原胞原子信息。

(7) SupercellAtomInfo 分为3部分,给出超胞原子信息。

(8) UnitAtomInfo 分为3部分,给出单胞原子信息。

(9) phonon 分为20部分

  • dfptEpsilon 为介电常数的计算开关;

  • dosRange 为计算声子态密度时能量的范围;

  • dosResolution 为计算声子态密度的能量间隔;

  • dosSigma 为计算声子态密度时的展宽;

  • eigenVectors 为本征向量的开关;

  • fdDisplacement 为计算声子时原子位移的大小,该参数在fd方法时有效;

  • iniPhonon 是否提供声子计算的json文件;

  • isDisplacement 是否有位移;

  • method 计算声子的方法;

  • nac 为nac的开关;

  • primitiveUVW 计算声子能带时是否将超胞还原成原胞;

  • qpoints 为计算声子能带时Q点的大小;

  • qpointsCoord 为计算声子能带时Q点的坐标;

  • qpointsLabel 为计算声子能带时Q点的标签;

  • qpointsNumber 为计算声子能带时Q点的数目;

  • qsamping 为计算声子能带时Q点采样的方法;

  • structureSize 为计算声子时扩胞参数;

  • thermal 为热力学计算的开关;

  • thermalRange 为热力学计算的温度范围;

  • type 为声子计算的任务类型。

(10)当task=phonon时,若打开介电常数或热力学性质计算的开关, phonon.json 结构中会分别写入 EpsilonInfoThermalInfo 数据,如下图所示:

_images/phonon-dielectric.png

其中 EpsilonInfo 分为3部分:

  • BornEfectiveCharge 给出波恩有效电荷数据;

  • Epsilon 给出介电常数数据;

  • Piezoelectric 给出压电数据;

_images/phonon-thermal.png

其中 ThermalInfo 分为4部分:

  • Entropy 给出熵的数据;

  • HeatCapacity 给出热容数据;

  • HelmholtzFreeEnergy 给出Helmholtz自由能数据;

  • Temperature 给出温度数据;

注解

注意:当phonon.method = fd 时, phonon.json文件会写入Displacements 和 Forceset 两部分数据。

6.14. aimd.json


aimd.json 为 task = aimd 时的输出文件,当 task类型为其他时,该文件不输出。

_images/aimd.png

(1) aimd.json 中包含3个结构体;

(2) Energy 包含两部分信息,分别为分子动力学模拟每一步的自由能数据和总能数据;数据大小取决于模拟总步数;

(3) structure 给出分子动力学模拟每一步的原子位置数据;

(4) Temperature 给出分子动力学模拟每一步的温度数据。

6.15. epsilon.json


epsilon.json 为 task = epsilon 时的输出文件,当 task类型为其他时,该文件不输出。

_images/epsilon.png

(1) epsilon.json 中包含 2 个结构体;

(2) AtomInfosystem.json 中的AtomInfo数据;

(3) EpsilonInfo 包含3部分数据:

  • BornEffectiveCharge 为波恩有效电荷数据;

  • Epsilon 为介电常数数据,分为电子贡献、离子贡献和总的介电常数;

  • Piezoelectric 为压电张量的数据,分为电子贡献、离子贡献和总的压电张量。

6.16. bader.json


bader.json 为 task = scf且io.bader = true 时的输出文件,当 task类型为其他时,该文件不输出。

_images/bader.png

(1) bader.json 中包含 2 个结构体;

(2) AtomInfosystem.json 中的AtomInfo数据;

(3) BaderInfo 包含3部分数据:

  • AtomicVolume 为bader体积数据;

  • Charge 为bader电荷数据;

  • MinDistance 为最近原子距离。

6.17. polarization.json


polarization.json 为 task = polarization 时的输出文件,当 task类型为其他时,该文件不输出。

_images/polarization.png

(1) polarization.json 中包含 5 个结构体;

(2) AtomInfosystem.json 中的AtomInfo数据;

(3) Electronic 为电子贡献数据;

(4) Ionic 为离子贡献数据;

(5) Quantum 为极化量子数据;

(6) Total 为总的极化数据;